import axios from "axios";
import ViewUIPlus from 'view-ui-plus'//组件库

var instance = axios.create({

});
instance.defaults.timeout =  1000 * 60 * 60;

// 添加请求拦截器
instance.interceptors.request.use(config=>{
        // console.log("发送拦截", config.url)//
        if (!!config.url) {
            if (!!sessionStorage.getItem('loginData')) {  // 判断是否存在token，如果存在的话，则每个http header都加上token
                if (!!JSON.parse(sessionStorage.getItem('loginData')).access_token) {
                    config.headers.Authorization = "Bearer " + JSON.parse(sessionStorage.getItem('loginData')).access_token;
                }
            }
        }
        return config;
    },
    function (error) {
        // console.log("对请求错误做些什么")
        return Promise.reject(error);
    }
)


let exitRemind = 0//退出提醒

// 添加响应拦截器
instance.interceptors.response.use(response=> {
        if (!response.data) {
            return response
        }
        if (response.data.code != 200 && response.data.code != 0) {
            ViewUIPlus.Spin.hide();
            ViewUIPlus.Message.error({
                content: response.data.msg,
                onClose: function () {
                    // sessionStorage.clear();// 删除所有数据
                    // location.reload()

                }
            });
        } else {
            return response
        }
    },
    error=> {
        if (error.response.status === 404) {
            ViewUIPlus.Spin.hide();
            ViewUIPlus.Message.error({
                content: '请求接口不存在，请联系0319-3303099。',
                duration: 5
            })
        } else if (error.response.status === 500) {
            ViewUIPlus.Spin.hide();
            ViewUIPlus.Message.error({
                content: '系统出现未知异常，请联系0319-3303099。',
                duration: 5
            })
        } else if (error.response.status === 403) {
            ViewUIPlus.Spin.hide();
            if (exitRemind != 0) {
                return false
            }
            exitRemind++
            ViewUIPlus.Message.error({
                content: '身份信息已失效,请重新登录。',
                onClose: function () {
                    sessionStorage.clear()// 删除所有数据
                    location.reload()
                    // router.push({
                    //   path: '/'
                    // })
                }
            })
        } else if (error.response.status === 401) {
            ViewUIPlus.Spin.hide();
            console.log(error.response)
            if (error.response.data.code == 100) {
                ViewUIPlus.Message.error({
                    content: error.response.data.msg,
                    duration: 5
                })
            } else if (error.response.data.code == 101) {
                if (exitRemind != 0) {
                    return false
                }
                exitRemind++
                ViewUIPlus.Message.error({
                    content: '身份信息已失效,请重新登录。',
                    onClose: function () {
                        sessionStorage.clear()// 删除所有数据
                        location.reload()
                        // router.push({
                        //   path: '/'
                        // })
                    }
                })
            }
        } else {
            ViewUIPlus.Spin.hide();
            ViewUIPlus.Message.error({
                content: error.response.data.msg,
                duration: 5
            })
        }

    }
);

export default instance;
